Complex distributed applications typically store configuration information in a variety of different data sources. For example, Microsoft® Exchange Server from MICROSOFT Corp. of Redmond, Wash. is a messaging platform that accesses configuration data from a number of external sources. A common external source is the Active Directory® also from the above mentioned MICROSOFT Corp. The Active Directory stores Exchange Server configuration information such as definitions of administrative groups, routing groups, configuration settings for protocol virtual servers, and the like. Another common external source is Internet Information Services (IIS), a web server also from the above mentioned MICROSOFT Corp. IIS stores configuration data in its IIS metabase store. Yet another common external source is Windows® Management Instrumentation (WMI), a web based enterprise management (WBEM) application also from the above mentioned MICROSOFT Corp. WMI provides information about the configuration and state of Exchange Servers. In addition to these and other external sources, configuration information for Exchange Server may be stored in the Windows® Registry also from the above mentioned MICROSOFT Corp.
The configuration data within each of these different external sources is typically addressed and accessed in a variety of different ways. For example, the Active Directory is structured as a hierarchy of objects. Such objects may be, for example, mailboxes, distribution lists, servers, configuration objects, and the like. Each object contains attributes in which information about that object is stored. Objects may be container objects, meaning that they contain other objects, or they may be leaf objects, in which case they do not contain other objects. Data for Active Directory objects may be accessed using, for example, Lightweight Directory Access Protocol (LDAP), which is a directory service protocol that runs directly over the TCP/IP stack. WMI objects, on the other hand, may be represented as hierarchical lists of objects that have properties and methods and may also be selected using the WMI query language, which is similar in structure to the SQL query language. Still other various addressing schemes and access protocols may be employed for the IIS metabase and the Registry.
Applications such as Exchange Server may often pull configuration data from these different sources and execute a rule set on the data to determine its validity. A drawback of this process is that, because the data within each of the sources is potentially addressed and accessed differently, a number of different methods may be required to retrieve the data. The formulation and execution of these methods may be a time consuming and tedious process that delays the configuration and/or setup of the application and diverts valuable development time human resources. For example, to pull configuration information from both the Active Directory and the WMI source, it may be necessary to generate both a separate set of LDAP queries and a separate set of WMI queries in accordance with the addressing schemes and access protocols of each of the data sources. Additionally, a number of different rules may need to be employed to analyze each of the retrieved data sets. Accordingly, there is a need in the art for systems and methods for retrieving and analyzing data from a number of different sources.